/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ArbolMenu.java
 *
 * Created on 18/10/2012, 01:40:04 AM
 */

package co.edu.unitecnologica.interfaz;

import co.edu.unitecnologica.modelo.TiposEstudiantes;
import co.edu.unitecnologica.reportes.AdmReportes;
import java.util.HashMap;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.swing.JOptionPane;

/**
 *
 * @author osalcedo
 */
public class ArbolMenu extends javax.swing.JInternalFrame {

    Principal principal;
    /** Creates new form ArbolMenu */
    public ArbolMenu(Principal p) {
        principal=p;
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        Arbol = new javax.swing.JTree();

        setIconifiable(true);
        setMaximizable(true);
        setResizable(true);
        setTitle("Formularios");
        addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
                formInternalFrameActivated(evt);
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
            }
        });

        javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("Opciones");
        javax.swing.tree.DefaultMutableTreeNode treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Parametrizacion");
        javax.swing.tree.DefaultMutableTreeNode treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Conceptos");
        treeNode2.add(treeNode3);
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Tipos de conceptos");
        treeNode2.add(treeNode3);
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Información de estudiantes");
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Estudiantes");
        treeNode2.add(treeNode3);
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Reporte de estudiantes");
        treeNode2.add(treeNode3);
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Informacion financiera");
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Liquidaciones");
        treeNode2.add(treeNode3);
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Gerencia Electronica");
        treeNode2.add(treeNode3);
        treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Reportes");
        treeNode2.add(treeNode3);
        treeNode1.add(treeNode2);
        Arbol.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        Arbol.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                ArbolValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(Arbol);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void ArbolValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_ArbolValueChanged
        if(evt.getPath().getLastPathComponent().toString().equals("Conceptos")){
            if(principal.validarObjeto("FrmConceptos")){
                FrmConceptos c= new FrmConceptos(principal);
                principal.getEscritorio().add(c);
                c.setVisible(true);
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
        }
        else if(evt.getPath().getLastPathComponent().toString().equals("Tipos de conceptos")){
            if(principal.validarObjeto("FrmTipoConceptos")){
                FrmTipoConceptos t= new FrmTipoConceptos(principal);
                principal.getEscritorio().add(t);
                t.setVisible(true);
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
        }
        else if(evt.getPath().getLastPathComponent().toString().equals("Estudiantes")){
            if(principal.validarObjeto("FrmEstudiantes")){
                FrmEstudiantes t= new FrmEstudiantes(principal);
                principal.getEscritorio().add(t);
                t.setVisible(true);
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
        }
        //Reportes
        else if(evt.getPath().getLastPathComponent().toString().equals("Reportes")){
            //if(principal.validarObjeto("FrmLiquidaciones")){
                FrmEnvioReportes t= new FrmEnvioReportes(principal);
                principal.getEscritorio().add(t);
                t.setVisible(true);
            /*}
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
            */
        }
        else if(evt.getPath().getLastPathComponent().toString().equals("Liquidaciones")){
            if(principal.validarObjeto("FrmLiquidaciones")){
                FrmLiquidaciones t= new FrmLiquidaciones(principal);
                principal.getEscritorio().add(t);
                t.setVisible(true);
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
            
        }
        else if(evt.getPath().getLastPathComponent().toString().equals("Gerencia Electronica")){
            if(principal.validarObjeto("FrmGerenciaElectronica")){
                FrmProcGerenciaElectronica t= new FrmProcGerenciaElectronica(principal);
                principal.getEscritorio().add(t);
                t.setVisible(true);
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
        }
        else if(evt.getPath().getLastPathComponent().toString().equals("Reporte de estudiantes")){
            if(principal.validarObjeto("rpt_estudiantes")){
                EntityManager em=principal.getAdmEntidades();
                TypedQuery<TiposEstudiantes> q=em.createNamedQuery("TiposEstudiantes.findAll", TiposEstudiantes.class);
                List<TiposEstudiantes> l=q.getResultList();
                String[] opciones=new String[l.size()];
                for(int i=0;i<opciones.length;i++){
                    opciones[i]=l.get(i).getCod()+"-"+l.get(i).getDescripcion();
                }
                String tipo=(String) JOptionPane.showInputDialog(this,"Seleccione el tipo de estudiante","Tipo de estudiante",JOptionPane.PLAIN_MESSAGE,frameIcon,opciones,opciones[0]);
                tipo=tipo.split("-")[0];
                String fechainicial=JOptionPane.showInputDialog(this,"Introduzca fecha inicial(aaaa/mm/dd):");
                String fechafinal=JOptionPane.showInputDialog(this,"Introduzca fecha final(aaaa/mm/dd):");
                HashMap parametros= new HashMap();
                parametros.put("tipo_estudiante", tipo);
                parametros.put("fecha_inicio", fechainicial);
                parametros.put("fecha_fin", fechafinal);
                em.getTransaction().begin();
                java.sql.Connection connection = em.unwrap(java.sql.Connection.class);
                AdmReportes reporte= new AdmReportes(connection);
                reporte.generarReporte("estudiantes.jasper", parametros);
                em.getTransaction().commit();
            }
            else
                JOptionPane.showMessageDialog(rootPane, "Lo siento, pero su cuenta no tiene permisos para acceder a este Objeto");
        }
    }//GEN-LAST:event_ArbolValueChanged

    private void formInternalFrameActivated(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameActivated
        principal.getJmOpciones().removeAll();
    }//GEN-LAST:event_formInternalFrameActivated


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTree Arbol;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration//GEN-END:variables

}
